package com.liuxingwu.demo02;

/**
 * 尽量不修改实体类，避免修改原有业务逻辑
 *
 * @author 扫地生_LiuXingWu
 */
public class UserServiceProxy implements UserService {
    private UserServiceImpl userService;        // 被代理的真实对象

    // 不使用构造方法的原因是Spring推荐使用set注入
    public void setUserService(UserServiceImpl userService) {
        this.userService = userService;
    }

    public void add() {
        log("add");
        userService.add();
    }

    public void delete() {
        log("delete");
        userService.delete();
    }

    public void update() {
        log("update");
        userService.update();
    }

    public void query() {
        log("query");
        userService.query();
    }

    //    额外方法
    //日志方法
    public void log(String msg) {
        System.out.println("代理对象补充：使用了" + msg + "方法");
    }
}
